import { defineStore } from 'pinia'

// 你可以对 `defineStore()` 的返回值进行任意命名，但
// 最好使用 store 的名字，同时以 `use` 开头且以 `Store` 结尾。(比如 `useUserStore`，`useCartStore`，`useProductStore`)
//
// 第一个参数是你的应用中 Store 的唯一 ID。
export const useCounterStore = defineStore('counter', {
  // state 必须是一个返回一个对象的函数，

  state: () => {
    return {
      // 返回的对象的每一个属性就是我们需要共享的变量
      counter: 0,
      id: 123,
      name: 'ttc'
    }
  },
  getters: {
    doubleCount: (state) => state.counter + state.counter,
    fullName: (state) => state.id + '  ' + state.name
  },
  // 所有的改变属性值的函数
  actions: {
    increment() {
      this.counter++
    },
    add(v) {
      this.counter += v
    }
  }
})

// stores/counter.js
// import { defineStore } from 'pinia'

// export const useCounterStore = defineStore('counter', {
//   state: () => {
//     return { count: 99 }
//   },
//   // 也可以这样定义
//   // state: () => ({ count: 0 })
//   actions: {
//     increment() {
//       this.count++
//     }
//   }
// })
